Namespace.Use("Locale.Tree", function(ns) {
    //
    //  Imports.
    //
    var Inherit = Namespace.Import("Base.Inherit");

    //
    //  Classes.
    //
    var ChineseSimplifiedMessageTree = Polymorphic.Create(
        [Object],
        function(tree) {
            //  Let parent class initialize.
            ns.MessageTree.call(this, tree);

            //
            //  Public methods.
            //
            this.IsLanguageMatches = Polymorphic.Create(
                [String],
                function(language_id) {
                    //  TODO(XiaoJSoft): "zh-HK" and "zh-TW" may means traditional chinese.
                    return language_id.toLowerCase().startsWith("zh");
                }
            );
        }
    );

    //  Inherit "ChineseSimplifiedMessageTree" from "MessageTree".
    Inherit(ChineseSimplifiedMessageTree, ns.MessageTree);

    //  Export public APIs / classes.
    Namespace.Export(ns, "ChineseSimplifiedMessageTree", ChineseSimplifiedMessageTree);
});
